An important aspect of virtually every conventional personal and business computer is its ability to execute commands to perform tasks. One example of this is in the transfer and manipulation of data, such as copying a file from one location to another. The information that is to be copied on a computer may originate from a variety of sources, for example, a storage medium used within a hard disk drive, a floppy disk drive, a CD ROM drive, a computer's read only memory (ROM), a computer's random access memory (RAM), or other sources, such as a network drive. For instance, during the boot process of a computer, operating system files are loaded, i.e. copied, into the main working memory of the computer from a permanent storage medium, such as a hard disk drive. Once it is executing, the operating system of the computer may be instructed by the user to copy data files from a variety of sources to multiple destinations.
Many popular operating systems use a dialogue window to indicate the status of a function being performed by the computer. This window may indicate the status of the ongoing task in a variety of manners to the user. One example includes illustrating status using a “progress bar”, which contains a moving bar that grows in size to indicate a percentage of the task either already performed or left to be performed. Generally, a progress bar is an animation that indicates, by filling an empty space of a fixed size, that a certain percentage of a task has been completed, which corresponds to the percentage of the space filled in. Another indication mechanism, used to indicate status of a task to the user, may include a numerical indication of the estimated amount of time left for the task to be completed.
One problem with the status indication given to a user during a task is that often the percentage of the task already performed, or yet to be performed, does not progress in a regular manner. This may be the case for a variety of reasons. For example, a file may take longer than expected to copy because of the time required to access the data on the device where it is stored. It may also be possible that the computer has a large amount of high priority processor-intensive applications running concurrently with the task, thereby preventing continuous execution of the task. Other delays may be caused by communication speed degradation or communication interruptions.
A problem with progressive status indicators for various tasks is that a status indicator that increases in size corresponding to a percentage of the task that is completed does not always appear to increase in a continuous manner to the user, due to delays associated with, for example, device access time, file transfer time, processor availability or communication speed. In a window designed to indicate status of a copying function to a user by means of a progress bar, for instance, the progress bar may appear to stop for some period of time. This may occur even though the copying operation is still active, giving the user the incorrect impression that copying has been stopped or delayed. This situation can occur quite often when copying files from a remote site by means of a shared communications medium, such as downloading files over the Internet. When a user initiates a file copy command, he or she may depend upon the progress bar to gauge whether or not the copying function is being performed correctly. Should the progress bar stop, a user may be inclined to believe incorrectly that the computer has terminated the copying function and may not be responding correctly, thereby motivating the user to take unnecessary actions, such as stop the task, re-establish a connection to a remote site, or restart the computer.
Accordingly, it is desirable to create a status indicator that provides continuous feedback to a user indicating that a task such as copying is being performed, and that this task on the computer is not suspended, requiring action on the part of the user. It is also desirable to provide this feedback in a manner intuitive to a user, such that it will be easy for the user to understand the computer is still performing the desired function or task which the status indicator is monitoring.